User defined associations of colors to cartridges for color printers

ABSTRACT

A printer status interface controller displays an interface at a client system with a first color from among a plurality of colors associated with a first print cartridge position associated, from among a plurality of print cartridge positions of a printer. The printer status interface controller receives a user selection within the interface to specify an association of a second color from among the plurality of colors with the first print cartridge position. Responsive to the user selection to associate the second color with the first print cartridge position, a printer color association controller adjusts a reference to the first color in a print document to print in the second color through a second print cartridge in a second print cartridge position from among the plurality of print cartridge positions.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of commonly assigned U.S. patentapplication Ser. No. 12/332,426, filed Dec. 11, 2008.

BACKGROUND

1. Technical Field

The present invention relates in general to controlling a printingapparatus, such as a color printer, and more specifically to userdefined dynamic associations of colors to cartridges for color printers.

2. Description of the Related Art

Printers have become useful and commonplace output devices for puttingthe words or images displayed on a screen or held in a file onto paperor other printable surfaces. Some printers include multiple cartridgesor implement color separation, to facilitate multi-color printing. Forexample liquid inkjet printers, laser toner based printers, pen basedplotters, and dye-sublimation printers may provide color separation andprinting. Many color printers detect or predict the amount of remainingink of each separate color and can alert a user which ink cartridge isempty and needs to be replaced.

With each color of ink held in a separate reservoir and some ink colorsused more frequently than other ink colors, some reservoirs may run outof color and need to be physically replaced before a color print job canbe completed. For example, in a print job requiring magenta, yellow,cyan, and black ink, if the magenta cartridge is too low to print, theprint job may stall until the magenta cartridge is replaced. In otherprinters, when a reservoir runs low, the printer may not stop printing acolor print job, but instead prints pages with progressively fadedshades of color until the ink is completely out and the resulting outputpages are unusable.

While some printers may also interface with software that displays thedetected levels of ink in each cartridge and alert a user via a displayinterface when an ink level reaches a minimum threshold, when a color ofink runs out, the user must still physically replace the expired inkcartridge with another cartridge with sufficient ink, in order for theprinter to complete the print job. Often times, ink will run outquickly, such that a low ink warning does not provide sufficient timefor a user to acquire a new cartridge.

SUMMARY

Therefore, in view of the foregoing, an embodiment of the inventionprovides a method, system, and computer program product for enabling auser to dynamically adjust the colors associated with an ink cartridgeso the user can continue printing on a printer, even when a particularcolor cartridge is empty, without replacing the color cartridge ormanually adjusting the colors within a printed file.

In one embodiment of the invention, a method, system, and computerprogram product provide for dynamically adjusting a color associatedwith a cartridge of a printer. A printer status interface controllerdisplays an interface at a client system with a first color from among aplurality of colors associated with a first print cartridge positionassociated, from among a plurality of print cartridge positions of aprinter. The printer status interface controller receives a userselection within the interface to specify an association of a secondcolor from among the plurality of colors with the first print cartridgeposition. Responsive to the user selection to associate the second colorwith the first print cartridge position, a printer color associationcontroller adjusts a reference to the first color in a print document toprint in the second color through a second print cartridge in a secondprint cartridge position from among the plurality of print cartridgepositions.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The novel features believed characteristic of one or more embodiments ofthe invention are set forth in the appended claims. The one or moreembodiments of the invention itself however, will best be understood byreference to the following detailed description of an illustrativeembodiment when read in conjunction with the accompanying drawings,wherein:

FIG. 1 is a block diagram depicting one embodiment of a printercontroller for enabling and implementing user defined associations ofcolors to cartridges of a printer;

FIG. 2 is a block diagram illustrating one embodiment of a networkenvironment for managing printing from client systems to networkprinters;

FIG. 3 is a block diagram depicting an example of a computer system inwhich the present invention may be implemented;

FIG. 4 is a block diagram illustrating one embodiment of a printerstatus interface through which a user selectively associates colors withcartridges;

FIG. 5 is a block diagram illustrating one embodiment of a single inkcolor interface for a user to select a single ink color and set scaledpercentages of other colors;

FIG. 6 is a block diagram illustrating one example of a print fileadjusted according to the user association of a color with a colorcartridge;

FIG. 7 is a high level logic flowchart depicting a process and programfor adjusting printing and display of a file to a single ink cartridgewith any colors other than the single ink color scaled according to userspecified percentages;

FIG. 8 is a high level logic flowchart illustrating a process andprogram for enabling a user to associate a color with a cartridge andfor adjusting a print request and display of a print file to reflect theuser defined associations of colors with cartridges of a printer; and

FIG. 9 is a high level logic flowchart depicting a process and programfor responding to a low ink cartridge.

DETAILED DESCRIPTION

Referring now to FIG. 1, a block diagram depicts one embodiment of aprinter controller for enabling and implementing user definedassociations of colors to cartridges of a printer.

In the example, a printer client controller 100 includes a printerdriver 102 that drives the instructions sent to a printer with multiplecartridges, such as printer 120. In the example, printer 120 includesexamples of multiple cartridges 124, 126, and 128, positioned withinphysical positions 140, 142, and 144, respectively. It will beunderstood that printer 120 may include additional or alternate numbersof cartridges. In addition, it will be understood that cartridges 124,126, and 128 may represent separate physical cartridges, may representseparate colors within a single cartridge, or may represent otherconfigurations of different types or colors of ink controlled by onboardprinter controller 122 for printing.

An onboard printer controller 122 receives instructions from printerdriver 102 and executes the instructions within printer 120. In oneexample, instructions sent by printer driver 102 may include a file forprinting, where printer driver 102 formats the file for the printer. Inanother example, instructions sent by printer driver 102 include a filefor printing and specific instructions to facilitate onboard printercontroller 122 formatting the file for printing on the printer. In yetanother example, instructions sent by printer driver 102 to onboardprinter controller 122 may include an instruction to cancel a print job,pause a print job, reorder a print job or adjust the print job.

Onboard printer controller 122 includes printer output hardware 132 forperforming and monitoring physical print operations. In one example,printer output hardware 132 may include, but is not limited to, printerheads, paper sensors, and paper feeders, which control and monitorprinting output.

Onboard printer controller 122 assigns each of physical positions 140,142, and 144 to a separate default color and controls printing ofrequested colors in a print file by printing from cartridges assigned tothe default colors associated with physical positions 140, 142, and 144to reflect the requested colors. In the example, physical position 140is assigned a default color A, physical position 142 is assigned adefault color B, and physical position 144 is assigned a default colorC. In one example, each of physical positions 140, 142 and 144 may bevisibly labeled with the default color assigned to the physical positionto guide the user in positioning ink cartridges within printer 120.Printer 120 may also detect whether the actual ink color in a positionedcartridge matches the default color for a physical position and onboardprinter controller 122 may calibrate ink use from each of cartridges124, 126, and 128 to achieve expected color output.

In the embodiment illustrated, printer 120 includes an ink level monitor130 that monitors the levels of ink within cartridges 124, 126, and 128.In one example, ink level monitor 130 may implement sensors such aselectrodes or a light beam, which sense when an ink level is reducedbelow a designated level. In another example, ink level monitor 130 mayinfer an ink level by counting a number of operations emitting ink froma print head of printer output hardware 132 and detecting when thenumber of operations exceeds an average number of operations allowedbefore the ink level is reduced below a designated level. It will beunderstood that ink level monitor 130 may implement additional oralternative methods for monitoring ink levels. In addition, it will beunderstood that printer client controller 100 may implement an ink levelmonitor in addition to, or as an alternative to ink level monitor 130.

Onboard printer controller 122 detects printer status information fromink level monitor 130 and printer output hardware 132 and othercomponents within printer 120 and communicates current printer statusinformation to printer client controller 100. In one example, onboardprinter controller 122 detects current ink levels from ink level monitor130 and communicates the current ink levels to printer client controller100. In another example, onboard printer controller 122 detects signalsfrom printer output hardware 132 indicating a current functionality ofprinter heads, current paper levels and positioning, and currentfunctionality of paper feeders and communicates the currentfunctionality of printer 120 to printer client controller 100.

In the example, printer client controller 100 includes a printer statusinterface controller 104. Printer status interface controller 104controls a selectable interface for displaying current printer statusinformation received from printer 120 and facilitating a user selectionof options for specifying a color within a print file to print to one ofcartridges 124, 126, and 128, as positioned within physical positions140, 142, and 144. In particular, printer status interface controller104 controls a selectable interface for facilitating a user selection ofoptions for associating a color with a cartridge, other than the defaultcolor assigned to the cartridge position. For example, physical position140 is assigned to “default color A”, however printer status interfacecontroller 104 may facilitate a user selection to associate “color B”with physical position 140, such that print requests for “default colorA” are dynamically adjusted to be printed by cartridge 126, which isassigned to “default color B”.

As a user dynamically selects to associate particular, non-defaultcolors with cartridges within printer status interface controller 104,current color cartridge associations 108 is updated to reflect thecurrent associations. In addition, as a user associates particular,non-default colors with cartridge positions within printer statusinterface controller 104, a printer color association controller 106dynamically adjusts the colors within a printable file to reflect thecolors associated with the cartridge positions and directs printerdriver 102 to request printing of the file as adjusted. Further, as auser associates particular, non-default colors with cartridges, a colorassociation display adjustment controller 110 facilitates display of aprintable document to reflect the expected color output of the document.

By enabling a user to dynamically define the color associated with aprint cartridge through printer status interface controller 104, printerclient controller 100 enables a user to adjust the color requests madeto printer 120 for a print file job, without the user having to replaceempty cartridges and without the user having to manually adjust thecolor settings of a file to be printed. For example, a document mayinclude a portion of text highlighted with a yellow color. If the yellowink cartridge is empty, rather than edit the document itself tohighlight areas of the document with a different color of ink orphysically replace the yellow ink cartridge, a user may select within aprinter status interface to associate cyan with the default yellowcartridge. Printer color association controller 106 detects theassociation and automatically adjusts any yellow ink requests within thedocument to print requests in cyan through the cyan color cartridge.

In addition, printer client controller 100 may include a cartridge levelhistory 112, where printer driver 102 stores a history of cartridge inklevels, print jobs, and times, in cartridge level history 112. Printerstatus interface controller 104 may control a selectable option thatenables a user to select to automatically adjust the associations ofcolor with cartridges to maximize cartridge use based on previouscartridge use accessed from cartridge level history 112. In one example,printer color association controller 106 may additionally analyze thecartridge ink level values over time and update cartridge level history112 with predicted ink level use and recommended color to cartridgeassociations.

Further, printer driver 102 may update cartridge level history 112 withan entry each time a cartridge is replaced or printer color associationcontroller 106 may infer a new cartridge from changes in cartridge inklevels over time. Printer status interface controller 104 may control aselectable option that enables a user to select to automatically adjustthe associations of color with cartridges to use the oldest ink first.In one example, printer color association controller 106 may analyzecurrent cartridge ink level values over time and update cartridge levelhistory 112 with records ordering the cartridges from oldest toyoungest.

Printer status interface controller 104 may control a selectable optionthat enables a user to select to automatically adjust the associationsof color with cartridges dependent upon the type of document, such asfor a document labeled as a type “draft”, where current color cartridgeassociations 108 include user designations of colors applicable to“draft” types of documents. Printer color association controller 106 mayfurther analyze cartridge level history 112 to determine whichcartridges should be used first from among the selection of cartridgesassociated for a “draft” document.

While in the embodiment depicted in FIG. 1 printer client controller 100includes printer driver 102, printer status interface controller 104,printer color association controller 106, current color cartridgeassociations 108, and color associations display adjustment controller110, it will be understood that the components or modules implementedwithin printer controller 110 may be implemented within a computersystem, such as computer system 300 to be further described withreference to FIG. 3, may be distributed across multiple computersystems, may be incorporated within one another, or may be plug-ins toother components or modules.

In addition, while in the embodiment depicted in FIG. 1 printer 120includes onboard printer controller 122, ink level monitor 130, printeroutput hardware 132, and cartridges 124, 126, and 128, it will beunderstood that the components or modules implemented within printer 120may be implemented within a computer system or implement a computersystem, such as computer system 300 or may be distributed acrossmultiple computer systems.

Further, while in the embodiment depicted in FIG. 1 printer clientcontroller 100 and printer 120 are depicted as separate components,connected via a communication medium 140, it will be understood thatprinter client controller 100 and printer 120 may be integrated into astand-alone printer system.

With reference now to FIG. 2, a block diagram depicts one embodiment ofa network environment for managing printing from client systems tonetwork printers. In the example, in a network environment 200, anetwork 202 communicatively connects multiple systems, such as clientsystem 220, client system 230, and printer 120. Network 202 may include,but is not limited to, packet-switching networks, such as the Internetor an intranet, and telephony networks. In addition, network 202 mayinclude routers, switches, gateways, and other hardware to enable acommunication channel between client system 220, client system 230, andprinter 120. Further, while in the example client system 220, clientsystem 230, and printer 120 are depicted as communicating via network202, in an alternate embodiment, one or more of the systems may beincorporated within network 202.

In the example, client system 220 includes a printer client controller222 and client system 230 includes a printer client controller 232,where printer client controller 222 and printer client controller 232include one or more components illustrated in printer client controller100 of FIG. 1. Client systems 220 and 230 may send print job requests toone or more network printers, such as printer 120 via network 202.

In addition, in the example, printer 120 is enabled as a network printerthrough a network printer controller 240, which connects printer 120 tonetwork 202 and may include network functions for responding to requestsfrom printer client controllers at multiple client systems. In theexample, network printer controller 240 also includes a colorassociation controller 242.

In one example, color association controller 242 analyzes incoming printjob requests from multiple printer client controllers to determine thecolor cartridges required for each print job, calculates a totalexpected ink requirement for queued jobs, and compares the requirementswith the current ink levels, to predict whether any print jobs waitingin the queue will not be processed due to lack of ink. In the case wherecolor association controller 242 predicts a print job waiting in thequeue will not be processed, color association controller 242 maypredict ink colors that will be available for a print job and send thepredictions to the print client controller that sent the print job,wherein the user may select an option within printer status interfacecontroller 104 to adjust the predicted color settings for the print jobto reflect the predicted ink availability. In addition, oralternatively, color association 242 may adjust the ink levels forprinter 120 distributed to printer client controller 222 and printerclient controller 232 to reflect the current ink levels reduced by thequeued jobs.

In another example, printer client controller 222 or printer clientcontroller 232 may each report the current color cartridge associationsfor a print job to color association controller 242 and colorassociation controller 242 may distribute current color cartridgeassociations among the different client systems.

In yet another example, a printer status interface controller of printerclient controller 222, for example, may include an option for a user toselect to apply the user's current color cartridge associations to allprint jobs by printer 120 or to all users of printer 120. In particular,one user, such as a network administrator may need an option fortemporarily controlling the color cartridge associations allowed forprinter 120. Printer client controller 222 sends the request to applythe user's current color cartridge associations to printer 120 to colorassociation controller 242. Color association controller 242 may applythe user's current color cartridge associations to pending print jobsfor printer 120 and may send the user's current color cartridgeassociations to other printer client controllers, such as printer clientcontroller 232, for restricting color cartridge associations at otherprinter client controllers sending print jobs to printer 120.

Referring now to FIG. 3, a block diagram illustrates an example of acomputer system in which the present invention may be implemented. Thepresent invention may be executed in a variety of systems andcombinations of systems, made up of functional components, such as thefunctional components described with reference to computer system 300and may be communicatively connected to a network, such as network 202.

Computer system 300 includes a bus 322 or other communication device forcommunicating information within computer system 300, and at least oneprocessing device such as processor 312, coupled to bus 322 forprocessing information. Bus 322 preferably includes low-latency andhigher latency paths that are connected by bridges and adapters andcontrolled within computer system 300 by multiple bus controllers. Whenimplemented as a server, computer system 300 may include multipleprocessors designed to improve network servicing power. Where multipleprocessors share bus 322, additional controllers (not depicted) formanaging bus access and locks may be implemented.

Processor 312 may be a general-purpose processor such as IBM's PowerPC(PowerPC is a registered trademark of International Business MachinesCorporation) processor that, during normal operation, processes dataunder the control of an operating system 360, application software 370,middleware (not depicted), and other code accessible from a dynamicstorage device such as random access memory (RAM) 314, a static storagedevice such as Read Only Memory (ROM) 316, a data storage device, suchas mass storage device 318, or other data storage medium. In oneembodiment, the operations performed by processor 312 may controlmanagement of content displayed on portable, content adjustableidentification devices as depicted in the operations of flowchart ofFIGS. 7-9 and other operations described herein. Operations performed byprocessor 312 may be requested by operating system 360, applicationsoftware 370, middleware or other code or the steps of the presentinvention might be performed by specific hardware components thatcontain hardwired logic for performing the steps, or by any combinationof programmed computer components and custom hardware components.

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a system, method or computer program product.Accordingly, the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc) or an embodimentcontaining software and hardware aspects that may all generally bereferred to herein as “circuit,” “module,” or “system.” Furthermore, thepresent invention may take the form of a computer program productembodied on any tangible medium of expression having computer-usableprogram code embodied in the medium.

Any combination of one or more computer usable or computer readablemedium(s) may be utilized. The computer-usable or computer-readablemedium may be, for example but not limited to, an electronic, magnetic,optical, electromagnetic, infrared, or semiconductor system, apparatus,device, or propagation medium. More specific examples (a non-exhaustivelist) of the computer-readable medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, such as mass storage device 318, a random accessmemory (RAM), such as RAM 314, a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CDROM), an optical storagedevice, a transmission media such as those supporting the Internet or anintranet, or a magnetic storage device. Note that the computer-usable orcomputer-readable medium could even be paper or another suitable mediumupon which the program is printed, as the program can be electronicallycaptured, via, for instance, optical scanning of the paper or othermedium, then compiled, interpreted, or otherwise processed in a suitablemanner, if necessary, and then stored in a computer memory. In thecontext of this document, a computer-usable or computer-readable mediummay be any medium that can contain, store, communicate, propagate, ortransport the program for use by or in connection with the instructionexecution system, apparatus, or device. The computer-usable medium mayinclude a propagated data signal with the computer-usable program codeembodied therewith, either in broadband or as part of a carrier wave.The computer usable program code may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, radio frequency (RF), etc.

Computer program code for carrying out operations of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language such asJava, Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on the user's computer,such as computer system 300, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server, suchas a server 340. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, such asnetwork 202, through a communication interface 332 over a network link334, that may be connected, for example, to network 202 including alocal area network (LAN) or a wide area network (WAN), or the connectionmay be made to an external computer (for example, through the Internetusing an Internet Service Provider). Although not depicted,communication interface 332 may include software, such as devicedrivers, hardware, such as adapters, and other controllers that enablecommunication. When implemented as a server, computer system 300 mayinclude multiple communication interfaces accessible via multipleperipheral component interconnect (PCI) bus bridges connected to aninput/output controller, for example. In this manner, computer system300 allows connections to multiple clients via multiple separate portsand each port may also support multiple connections to multiple clients.

The present invention is described below with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, such as computersystem 300, or other programmable data processing apparatus to functionin a particular manner, such that the instructions stored in thecomputer-readable medium produce an article of manufacture includinginstruction means which implement the function/act specified in theflowchart and/or block diagram block or blocks.

The computer program instructions may also be loaded onto a computer,such as computer system 300, or other programmable data processingapparatus to cause a series of operational steps to be performed on thecomputer or other programmable apparatus to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Network link 334 and network 202 both use electrical, electromagnetic,or optical signals that carry digital data streams. The signals throughthe various networks and the signals on network link 334 and throughcommunication interface 332, which carry the digital data to and fromcomputer system 300, may be forms of carrier waves transporting theinformation.

In addition, computer system 300 may include multiple peripheralcomponents that facilitate input and output. These peripheral componentsare connected to multiple controllers, adapters, and expansion slots,such as input/output (I/O) interface 326, coupled to one of the multiplelevels of bus 322. For example, input device 324 may include, forexample, a microphone, a video capture device, a body scanning system, akeyboard, a mouse, or other input peripheral device, communicativelyenabled on bus 322 via I/O interface 326 controlling inputs. Inaddition, for example, a display device 320 communicatively enabled onbus 322 via I/O interface 326 for controlling outputs may include, forexample, one or more graphical display devices, audio speakers,printers, and tactile detectable output interfaces, but may also includeother output interfaces. In alternate embodiments of the presentinvention, additional or alternate input and output peripheralcomponents may be added.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 3 may vary. Furthermore, those of ordinary skill in theart will appreciate that the depicted example is not meant to implyarchitectural limitations with respect to the present invention.

With reference now to FIG. 4, a block diagram illustrates one embodimentof a printer status interface through which a user selectivelyassociates colors with cartridges. In the example, a printer statusinterface 400 includes a selection tool 450. Selection tool 450 isillustrated as an arrow or pointer, which the user may position withinprinter status interface 400 and use to select options within printerstatus interface 400. It will be understood that other selection toolsmay be implemented for a user to select from options within printerstatus interface 400 and printer status interface 400 may be outputthrough an audio interface or other type of interface, in addition tothe display type interface illustrated in FIG. 4.

In the example, the user may select an option to print a file withsingle ink only, regardless of any colors specified in the file itself,by selecting “single ink only” as illustrated at reference numeral 402.By a user selecting “single ink only” as illustrated at referencenumeral 402, printer color association controller 106 may automaticallyconvert any colors within the file to scaled colorings in a single inkcolor. In addition, by a user selecting “single ink only” as illustratedat reference numeral 402, printer status interface controller 104 maytrigger an additional interface illustrated at single ink only interface500 in FIG. 5, and prompt a user to select to adjust the scaledpercentages illustrated in column 504 associated with the file colorsillustrated in column 502 and save the settings using selectable saveoption 506. The file colors illustrated in column 502 reflect the colorof cartridge which would otherwise output each file color if the userhad not selected the “single ink only” option.

In FIG. 5, by enabling a user to select to print a file in a single inkonly, and enabling the user to select the scaled percentage for printercolor association controller 106 to apply to the colors in a file, auser can select to highlight particular colors within a printing of afile through scaling of color, without having to manually edit thecolors in the actual file. In the example in FIG. 5, the scaling ofcolor for the user selecting the single color of “black”, as illustratedat reference numeral 510, set for the colors “cyan” and “light cyan” is“30%” and “20%”, respectively. The color scale set for the other colorsis “100%”, such that “cyan” and “light cyan” will print out at a lightergrey shade than the other colors. It is important to note that in theexample, the colors of “yellow”, “magenta”, and “light magenta” wouldnormally output at lower scaled percentages, to reflect color even whenonly black ink is used.

Returning to FIG. 4, printer status interface 400 includes a column 406listing each of the default colors assignments by a printer to printercartridge positions. In the example, default colors assigned to thecartridge positions include a “cyan cartridge”, a “light cyancartridge”, a “black cartridge”, a “yellow cartridge”, a “magentacartridge”, and a “light magenta cartridge”.

In addition, printer status interface 400 includes a column 408indicating the current ink level, as reported from the printer, for eachof the cartridge positions. The ink level may be displayed withinprinter status interface 400 in multiple formats. For example, the inklevel for a cartridge may be displayed as a numerical value, such as apercentage, or a graphical value, such as a bar representative of apercentage.

For each of the default color cartridges, a user may select to enable ordisable a particular cartridge from being available for a print job byselecting or deselecting the box in column 404 associated the particularcartridge. In the example, the user has enabled the “cyan cartridge”,“light cyan cartridge”, “black cartridge”, “magenta cartridge”, and“light magenta cartridge” and disabled the “yellow cartridge”.

In addition, in the example, for each of the cartridges, the user mayselect in column 410 to associate a color with each assigned defaultcolor, where the currently associated color may be different from thedefault color. The currently associated color in column 410 specifiesthe color assigned to any print requests for the default colorcartridges.

In one example in column 410, the user has selected “magenta” as thecurrently associated color with two default color cartridges includingthe “cyan cartridge” and “magenta cartridge”. As a result of the userselecting “magenta” as the currently associated color with the twocartridges, printer color association controller 106 will convert anycolor requests in a print file that are for the colors of “cyan” or“magenta” into color requests for the default “magenta cartridge”.

In another example in column 410, the user has selected “light magenta”as the currently associated color with the default color cartridge of“yellow cartridge”. As a result of the user selecting “light magenta” asthe color currently associated with the “yellow cartridge”, printercolor association controller 106 will convert any color requests in aprint file that are for the colors of “yellow” into color requests forthe default “light magenta cartridge”.

In addition, in the example, for each of the cartridges, the user mayselect in column 412 to enable or disable automatic color associationswhen a cartridge level is empty and may select in column 414 to specifythe color to associate with the empty cartridge. In the example, theuser has enabled automatic color associations for the “cyan cartridge”,“black cartridge”, and “light magenta cartridge”.

In one example, in column 414, the user has selected to automaticallyassociate the color of “light cyan” with the “cyan cartridge” if the“cyan cartridge” is empty. As a result of the user selection, if printercolor association controller 106 detects the “cyan cartridge” is empty,printer color association controller 106 will override any othersettings and will automatically convert any color requests in a printfile that are for the color of “cyan” into a color request for thedefault “light cyan” cartridge.

In another example, in column 414, the user has selected toautomatically associate the color of “cyan” with the “black cartridge”if the “black cartridge” is empty. As a result of the user selection, ifprinter color association controller 106 detects the “black cartridge”is empty, printer color association controller 106 will override anyother settings and will automatically convert any color requests in aprint file that are for the color of “black” into a color request forthe default “cyan” cartridge.

In yet another example, in column 414, the user has selected toautomatically associate the color of “magenta” with the “light magentacartridge” if the “light magenta cartridge” is empty. As a result of theuser selection, if printer color association controller 106 detects the“light magenta cartridge” is empty, printer color association controller106 will override any other settings and will automatically convert anycolor requests in a print file that are for the color of “light magenta”into a color request for the default “magenta” cartridge.

In addition, in the example, printer status interface 400 includes aselectable option 416 to “automatically adjust color associations tooptimize current ink levels.” In response to a user selection ofselectable option 416, printer status interface controller 104 updatesthe color associations with cartridges in columns 410 and 414 to reflectany recommended color associations specified from cartridge levelhistory 112. For example, if the history of ink usage indicates that the“cyan cartridge” is replaced more often than the “light cyan cartridge”,upon a user selection of selectable option 416, printer status interfacecontroller 104 detects the replacement rate for cartridges and mayautomatically associate “light cyan” with the “cyan cartridge” withinprinter status interface 400. In another example, printer statusinterface controller 104 may retrieve recommended color associationsfrom color association controller 242.

In the example, printer status interface 400 includes a selectableoption 418 to “automatically adjust color associations to use oldest inkfirst”. In response to a user selection of selectable option 418,printer status interface controller 104 updates the color associationswith cartridges in columns 410 and 414 to first use the ink that hasbeen in the printer the longest. In one example, cartridge level history112 may indicate that the “light magenta cartridge” has been in placefor longer than the other cartridges, and may automatically set thecolor associated with “magenta cartridge” to “light magenta” in column410, such that the “light magenta cartridge” is used up before the“magenta cartridge.”

As illustrated in printer status interface 400, a user may also selectselectable option 420 to return to default settings, a selectable option422 to save the current settings, and a selectable option 424 to updatea current print file with the current settings. In addition, printerstatus interface 400 may include a selectable option 426 to “apply toall printing jobs to network printer”. By selecting selectable option426, printer driver 102 may deliver the associations specified incurrent color cartridge associations 108 to color association controller242.

It will be understood that printer status interface 400 may includeadditional or alternate selectable options and information from thedisplayed selectable options and information. In addition, it will beunderstood that printer status interface 400 may be integrated withinanother printer display interface or may be a stand-alone displayinterface.

With reference now to FIG. 6, a block diagram illustrates one example ofa print file adjusted according to the user association of a color witha color cartridge. In the example, an original document in a printrequest, as illustrated at reference numeral 602, includes a black textblock 604 and a magenta text block 606. In the example, as illustratedat reference numeral 620, there is an indication that the magentacartridge is out of ink. In addition, as illustrated at referencenumeral 622, there is an indication that the user has associated“yellow” with the “magenta cartridge”. As illustrated, at referencenumeral 610, printer color association controller 106 adjusts a printrequest for the document and a color association display adjustmentcontroller 110 adjusts a display of the document so that black textblock 604 prints on the “black cartridge” and displays in “black”, asillustrated at reference numeral 612, and magenta text block 606 printson the “yellow cartridge” and displays in “yellow”, as illustrated atreference numeral 614.

In the example, by enabling a user to define the color associated with acartridge and printer client controller 100 automatically adjusting theprint and display of a document to reflect the color association withthe cartridge, when a cartridge ink level is empty the user is notrequired to change out an empty cartridge or edit the color assigned toa text block to continue printing on a printer which stops printing ifone cartridge is empty or low until the cartridge is replaced.

In addition, in the example, by enabling a user to define the colorassociated with a cartridge and printer client controller 100automatically adjusting the print of a document to reflect the colorassociations with the cartridge, in a document saved in a file formatthat does not allow editing without purchase of additional applicationprograms, such as a portable document format (PDF) file where a readerapplication for the PDF file is free but an editing application for thePDF file requires a purchased license, printer client controller 100adjusts the actual color output of the document even though a usercannot edit the document to change the colors.

Further, in the example, by enabling a user to define the colorassociated with a cartridge and printer client controller 100automatically adjusting the print of a document to reflect the colorassociations with the cartridge, for a document which includes aphotograph, different effects may be introduced through a user definingthe color associated with a cartridge, without the user editing thecolors of the photograph itself.

In addition, in the example, by enabling a user to define the colorassociated with a cartridge and printer client controller 100automatically adjusting the print of a document to reflect the colorassociations with the cartridge, for a document which includes a colorhighlight, a user may select through a color association with acartridge to print a first batch of the document with a first color anda second batch of the document with a second color, without having tochange the original color selected in the document.

Referring now to FIG. 7, a high level logic flowchart illustrates aprocess and program for adjusting printing and display of a file to asingle ink cartridge with any colors other than the single ink colorscaled according to user specified percentages. In the example, theprocess starts at block 700 and thereafter proceeds to block 702. Block702 illustrates a determination whether a user requests only a singleink color. If a user requests only a single ink color, then the processpasses to block 704. Block 704 depicts displaying a single ink onlyselection interface for a user to specify scales associated with filecolors. Next, block 706 illustrates a determination whether the userselects to save the selections of separate scaled percentages assignedto each of the available colors assigned to cartridges. Thereafter,block 708 depicts adjusting all the colors of ink other than the singleink color for print and display, scaled in the single ink coloraccording to the user specified percentages, and the process ends.

With reference now to FIG. 8, a high level logic flowchart depicts aprocess and program for enabling a user to associate a color with acartridge and for adjusting a print request and display of a print fileto reflect the user defined associations of colors with cartridges of aprinter. As illustrated, the process starts with block 800 andthereafter proceeds to block 802. Block 802 illustrates a determinationwhether a user requests to specify the colors associated with cartridgesfor a printer. If a user requests to specify the colors associated withcartridges for a printer, then the process passes to block 804. Block804 depicts displaying a printer status interface for the user toassociate colors with cartridges. Next, block 806 illustrates updatingthe printer status interface to reflect any user associations of colorswith cartridges, and the process passes to block 808.

Block 808 depicts a determination whether the user requests to saveselections. If the user requests to save selections, then the processpasses to block 810. Block 810 illustrates updating the current colorcartridge associations with the user selections, and the process passesto block 812. At block 808, if the user has not requested a saveselection, the process passes to block 812.

Block 812 illustrates a determination whether the user selects to returnto default settings. If the user requests to return to default settings,then the process passes to block 814. Block 814 depicts updating theprinter status interface to the default color assignments to eachcartridge, and the process passes to block 816. At block 812, if theuser has not requested to return to default settings, the process passesto block 816.

Block 816 depicts a determination whether the user requests to updatethe current associations for a print file. If the user requests toupdate the current associations for a print file, then the processpasses to block 818. Block 818 illustrates updating the current colorcartridge associations with the user selections. Next, block 820 depictsadjusting the colors within the display of the print file to reflect theuser specified colors associated with cartridges. Thereafter, block 822illustrates adjusting the colors requested for printing within the printfile to reflect the user specified colors associated with cartridges,and the process passes to block 824. Returning to block 816, if the userhas not requested to update the current associations for a print file,then the process passes to block 824.

Block 824 illustrates a determination whether the user requests to automaximize ink use. If the user requests to auto maximize ink use, thenthe process passes to block 826. Block 826 depicts adjusting the printerstatus interface to associate colors with cartridges to maximize ink useaccording to cartridge level history analysis, and the process passes toblock 828. At block 824, if the user has not requested to auto maximizeink use, then the process passes to block 828.

Block 828 depicts a determination whether the user requests to use theoldest cartridge first. If the user requests to use the oldest cartridgefirst, then the process passes to block 830. Block 830 illustratesadjusting the printer status interface to associate colors withcartridges to maximize ink use from the oldest cartridge according tothe cartridge level history analysis, and the process returns to block808, until a user selects to close the interface. Otherwise, at block828, if the user does not request to use the oldest cartridge first,then the process returns to block 808, until a user selects to close theinterface.

It will be understood by one with skill in the art that blocks 808, 812,816, 824, and 828 may be separately triggered, out of the orderdisplayed in the process, by a user selection of one of multipleselectable options, where each selectable option triggers a separateblock from among block 808, 812, 816, 824, and 828. In addition, it willbe understood by one with skill in the art that a user may also selectto close an interface and the process returns to block 802, waiting fora request to specify the color associated with cartridges for a printer.

Referring now to FIG. 9, a high level logic flowchart depicts a processand program for responding to a low ink cartridge. In the example, theprocess starts at block 900 and thereafter proceeds to block 902. Block902 illustrates a determination whether a printer client controller orcolor association controller detects a low cartridge ink levelindicator. If a low cartridge ink level is detected, then the processpasses to block 904.

Block 904 depicts a determination whether the current color cartridgeassociations are set for auto adjustment of the low ink color. If colorcartridge associations are set for auto adjustment of the low ink color,then the process passes to block 906. Block 906 illustratesautomatically adjusting the colors requested for printing and displaywith the print file to reflect the user specified color associations forthe low ink cartridge. Next, block 908 depicts automatically adjustingthe associations within the printer status interface to reflect thecolor automatically associated with the low ink cartridge, and theprocess ends.

Returning to block 904, if color cartridge associations are not set forauto adjustment of the low ink color, then the process passes to block910. Block 910 illustrates triggering the printer status interface witha request for the user to associate a color with the low ink cartridge,and the process ends.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising”, when used in this specification specify thepresence of stated features, integers, steps, operations, elements,and/or components, but not preclude the presence or addition of one ormore other features, integers, steps, operations, elements, components,and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the one or more embodiments of the invention has beenpresented for purposes of illustration and description, but is notintended to be exhaustive or limited to the invention in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art without departing from the scope and spiritof the invention. The embodiment was chosen and described in order tobest explain the principles of the invention and the practicalapplication, and to enable others of ordinary skill in the art tounderstand the invention for various embodiments with variousmodifications as are suited to the particular use contemplated.

While the invention has been particularly shown and described withreference to one or more embodiments, it will be understood by thoseskilled in the art that various changes in form and detail may be madetherein without departing from the spirit and scope of the invention.

What is claimed is:
 1. A method for dynamically adjusting a colorassociated with a cartridge of a printer, the method comprising: acomputer displaying an interface with a first color from among aplurality of colors associated with a first print cartridge position ofa plurality of print cartridge positions of a printer; the computerreceiving a user selection within the interface to specify anassociation of a second color from among the plurality of colors withthe first print cartridge position; and the computer, responsive toreceiving the user selection to associate the second color with thefirst print cartridge position, adjusting a reference to the first colorin a print document to print in the second color through a second printcartridge in a second print cartridge position of the plurality of printcartridge positions.
 2. The method according to claim 1, furthercomprising: the computer tracking use of each current cartridge positionin the plurality of print cartridge positions over a period of time; thecomputer ordering the use of each current cartridge position from mostused cartridge position to least used cartridge position; the computerdisplaying in the interface a selectable option to automatically adjusteach association of color with each current cartridge position in theplurality of print cartridge positions to optimize use of each currentcartridge position in the plurality of print cartridge positions fromthe least used cartridge position to the most used cartridge position;and the computer, responsive to receiving a user selection of theselectable option to automatically adjust each association of color,automatically adjusting each association of each color with each currentcartridge position in the plurality of print cartridge positions tooptimize the use of each current cartridge position in the plurality ofprint cartridge positions from the least used cartridge position to themost used cartridge position.
 3. The method according to claim 1,further comprising: the computer tracking a separate time of placementof each current cartridge position in the plurality of print cartridgepositions over a period of time; the computer displaying in theinterface a selectable option to automatically adjust each associationof color with each current cartridge position in the plurality of printcartridge positions to use an oldest current cartridge to a most recentcurrent cartridge based on the tracked separate times of placement; andthe computer, responsive to receiving a user selection of the selectableoption to automatically adjust each association of color, automaticallyadjusting each association of each color with each current cartridgeposition in the plurality of print cartridge positions to use the oldestcurrent cartridge before the most recent current cartridge.
 4. Themethod according to claim 1, further comprising: the computer sendingthe user selection to associate the second color with the first printcartridge position to the printer, wherein the printer is shared on anetwork; and the computer applying, at the printer, the user selectionto associate the second color with the first print cartridge position toat least one incoming print job to the printer.
 5. A system fordynamically adjusting a color associated with a cartridge of a printer,the system comprising: a computer system communicatively connected to aprinter; the computer system comprising a printer client controllerconfigured to display an interface with a first color from among aplurality of colors associated with a first print cartridge position ofa plurality of print cartridge positions of the printer; the printerclient controller configured to receive a user selection within theinterface to specify an association of a second color from among theplurality of colors with the first print cartridge position; the printerclient controller configured to, responsive to receiving the userselection to associate the second color with the first print cartridgeposition, adjust a reference to the first color in a print document toprint in the second color through a second print cartridge in a secondprint cartridge position of the plurality of print cartridge positions.6. The system according to claim 5, further comprising: the printerclient controller configured to track use of each current cartridgeposition in the plurality of print cartridge positions over a period oftime; the printer client controller configured to order the use of eachcurrent cartridge position from most used cartridge position to leastused cartridge position; the printer client controller configured todisplay in the interface a selectable option to automatically adjusteach association of color with each of the plurality of print cartridgepositions to optimize use of each current cartridge position in theplurality of print cartridge positions from the least used cartridgeposition to the most used cartridge position; and the printer clientcontroller configured to, responsive to receiving a user selection ofthe selectable option to automatically adjust each association of color,adjust each association of each color with each current cartridgeposition in the plurality of print cartridge positions to optimize theuse of each current cartridge position in the plurality of printcartridge positions from the least used cartridge position to the mostused cartridge position.
 7. The system according to claim 5, furthercomprising: the printer client controller configured to track a separatetime of placement of each current cartridge position in the plurality ofprint cartridge positions over a period of time; the printer clientcontroller configured to display in the interface a selectable option toautomatically adjust each association of color with each currentcartridge position in the plurality of print cartridge positions to usean oldest current cartridge to a most recent current cartridge based onthe tracked separate times of placement; and the printer clientcontroller configured to, responsive to receiving a user selection ofthe selectable option to automatically adjust each association of color,automatically adjust each association of each color with each currentcartridge position in the plurality of print cartridge positions to usethe oldest current cartridge before the most recent current cartridge.8. The system according to claim 5, further comprising: the printerclient controller configured to send the user selection to associate thesecond color with the first print cartridge position to the printer,wherein the printer is shared on a network; and the printer clientcontroller configured to apply, at the printer, the user selection toassociate the second color with the first print cartridge position to atleast one incoming print job to the printer.
 9. A computer programproduct for dynamically adjusting a color associated with a cartridge ofa printer, the computer program product comprising: one or morecomputer-readable tangible storage devices; program instructions, storedon at least one of the one or more storage devices, to display aninterface at a client system with a first color from among a pluralityof colors associated with a first print cartridge position of aplurality of print cartridge positions of a printer; programinstructions, stored on at least one of the one or more storage devices,to receive a user selection within the interface to specify anassociation of a second color from among the plurality of colors withthe first print cartridge position; and program instructions, stored onat least one of the one or more storage devices, responsive to receivingthe user selection to associate the second color with the first printcartridge position, to adjust a reference to the first color in a printdocument to print in the second color through a second print cartridgein a second print cartridge position of the plurality of print cartridgepositions.
 10. The computer program product of claim 9, furthercomprising: program instructions, stored on at least one of the one ormore storage devices, to track use of each current cartridge position inthe plurality of print cartridge positions over a period of time;program instructions, stored on at least one of the one or more storagedevices, to order the use of each current cartridge position from mostused cartridge position to least used cartridge position; programinstructions, stored on at least one of the one or more storage devices,to display in the interface a selectable option to automatically adjusteach association of color with each current cartridge position in theplurality of print cartridge positions to optimize the use of eachcurrent cartridge position in the plurality of print cartridge positionsfrom the least used cartridge position to the most used cartridgeposition; and program instructions, stored on at least one of the one ormore storage devices, responsive to receiving a user selection of theselectable option to automatically adjust each association of color, toautomatically adjust each association of each color with each currentcartridge position in the plurality of print cartridge positions tooptimize the use of each current cartridge position in the plurality ofprint cartridge positions from the least used cartridge position to themost used cartridge position.
 11. The computer program product of claim9, further comprising: program instructions, stored on at least one ofthe one or more storage devices, to track a separate time of placementof each current cartridge position in the plurality of print cartridgepositions over a period of time; program instructions, stored on atleast one of the one or more storage devices, to display in theinterface a selectable option to automatically adjust each associationof color with each current cartridge position in the plurality of printcartridge positions to use an oldest current cartridge to a most recentcurrent cartridge based on the tracked separate times of placement; andprogram instructions, stored on at least one of the one or more storagedevices, responsive to receiving a user selection of the selectableoption to automatically adjust each association of color, toautomatically adjust each association of each color with each currentcartridge position in the plurality of print cartridge positions to usethe oldest current cartridge before the most recent current cartridge.12. The computer program product of claim 9, further comprising: programinstructions, stored on at least one of the one or more storage devices,to send the user selection to associate the second color with the firstprint cartridge position to the printer, wherein the printer is sharedon a network; and program instructions, stored on at least one of theone or more storage devices, to apply, at the printer, the userselection to associate the second color with the first print cartridgeposition to at least one incoming print job to the printer.